package com.sunny.fetch.pojo;

import java.util.ArrayList;
import java.util.List;

public class FFxDailyExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public FFxDailyExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andTidIsNull() {
            addCriterion("tid is null");
            return (Criteria) this;
        }

        public Criteria andTidIsNotNull() {
            addCriterion("tid is not null");
            return (Criteria) this;
        }

        public Criteria andTidEqualTo(Long value) {
            addCriterion("tid =", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotEqualTo(Long value) {
            addCriterion("tid <>", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThan(Long value) {
            addCriterion("tid >", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThanOrEqualTo(Long value) {
            addCriterion("tid >=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThan(Long value) {
            addCriterion("tid <", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThanOrEqualTo(Long value) {
            addCriterion("tid <=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidIn(List<Long> values) {
            addCriterion("tid in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotIn(List<Long> values) {
            addCriterion("tid not in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidBetween(Long value1, Long value2) {
            addCriterion("tid between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotBetween(Long value1, Long value2) {
            addCriterion("tid not between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andTsCodeIsNull() {
            addCriterion("ts_code is null");
            return (Criteria) this;
        }

        public Criteria andTsCodeIsNotNull() {
            addCriterion("ts_code is not null");
            return (Criteria) this;
        }

        public Criteria andTsCodeEqualTo(String value) {
            addCriterion("ts_code =", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeNotEqualTo(String value) {
            addCriterion("ts_code <>", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeGreaterThan(String value) {
            addCriterion("ts_code >", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeGreaterThanOrEqualTo(String value) {
            addCriterion("ts_code >=", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeLessThan(String value) {
            addCriterion("ts_code <", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeLessThanOrEqualTo(String value) {
            addCriterion("ts_code <=", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeLike(String value) {
            addCriterion("ts_code like", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeNotLike(String value) {
            addCriterion("ts_code not like", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeIn(List<String> values) {
            addCriterion("ts_code in", values, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeNotIn(List<String> values) {
            addCriterion("ts_code not in", values, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeBetween(String value1, String value2) {
            addCriterion("ts_code between", value1, value2, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeNotBetween(String value1, String value2) {
            addCriterion("ts_code not between", value1, value2, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTradeDateIsNull() {
            addCriterion("trade_date is null");
            return (Criteria) this;
        }

        public Criteria andTradeDateIsNotNull() {
            addCriterion("trade_date is not null");
            return (Criteria) this;
        }

        public Criteria andTradeDateEqualTo(String value) {
            addCriterion("trade_date =", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateNotEqualTo(String value) {
            addCriterion("trade_date <>", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateGreaterThan(String value) {
            addCriterion("trade_date >", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateGreaterThanOrEqualTo(String value) {
            addCriterion("trade_date >=", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateLessThan(String value) {
            addCriterion("trade_date <", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateLessThanOrEqualTo(String value) {
            addCriterion("trade_date <=", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateLike(String value) {
            addCriterion("trade_date like", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateNotLike(String value) {
            addCriterion("trade_date not like", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateIn(List<String> values) {
            addCriterion("trade_date in", values, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateNotIn(List<String> values) {
            addCriterion("trade_date not in", values, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateBetween(String value1, String value2) {
            addCriterion("trade_date between", value1, value2, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateNotBetween(String value1, String value2) {
            addCriterion("trade_date not between", value1, value2, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andBidOpenIsNull() {
            addCriterion("bid_open is null");
            return (Criteria) this;
        }

        public Criteria andBidOpenIsNotNull() {
            addCriterion("bid_open is not null");
            return (Criteria) this;
        }

        public Criteria andBidOpenEqualTo(Float value) {
            addCriterion("bid_open =", value, "bidOpen");
            return (Criteria) this;
        }

        public Criteria andBidOpenNotEqualTo(Float value) {
            addCriterion("bid_open <>", value, "bidOpen");
            return (Criteria) this;
        }

        public Criteria andBidOpenGreaterThan(Float value) {
            addCriterion("bid_open >", value, "bidOpen");
            return (Criteria) this;
        }

        public Criteria andBidOpenGreaterThanOrEqualTo(Float value) {
            addCriterion("bid_open >=", value, "bidOpen");
            return (Criteria) this;
        }

        public Criteria andBidOpenLessThan(Float value) {
            addCriterion("bid_open <", value, "bidOpen");
            return (Criteria) this;
        }

        public Criteria andBidOpenLessThanOrEqualTo(Float value) {
            addCriterion("bid_open <=", value, "bidOpen");
            return (Criteria) this;
        }

        public Criteria andBidOpenIn(List<Float> values) {
            addCriterion("bid_open in", values, "bidOpen");
            return (Criteria) this;
        }

        public Criteria andBidOpenNotIn(List<Float> values) {
            addCriterion("bid_open not in", values, "bidOpen");
            return (Criteria) this;
        }

        public Criteria andBidOpenBetween(Float value1, Float value2) {
            addCriterion("bid_open between", value1, value2, "bidOpen");
            return (Criteria) this;
        }

        public Criteria andBidOpenNotBetween(Float value1, Float value2) {
            addCriterion("bid_open not between", value1, value2, "bidOpen");
            return (Criteria) this;
        }

        public Criteria andBidCloseIsNull() {
            addCriterion("bid_close is null");
            return (Criteria) this;
        }

        public Criteria andBidCloseIsNotNull() {
            addCriterion("bid_close is not null");
            return (Criteria) this;
        }

        public Criteria andBidCloseEqualTo(Float value) {
            addCriterion("bid_close =", value, "bidClose");
            return (Criteria) this;
        }

        public Criteria andBidCloseNotEqualTo(Float value) {
            addCriterion("bid_close <>", value, "bidClose");
            return (Criteria) this;
        }

        public Criteria andBidCloseGreaterThan(Float value) {
            addCriterion("bid_close >", value, "bidClose");
            return (Criteria) this;
        }

        public Criteria andBidCloseGreaterThanOrEqualTo(Float value) {
            addCriterion("bid_close >=", value, "bidClose");
            return (Criteria) this;
        }

        public Criteria andBidCloseLessThan(Float value) {
            addCriterion("bid_close <", value, "bidClose");
            return (Criteria) this;
        }

        public Criteria andBidCloseLessThanOrEqualTo(Float value) {
            addCriterion("bid_close <=", value, "bidClose");
            return (Criteria) this;
        }

        public Criteria andBidCloseIn(List<Float> values) {
            addCriterion("bid_close in", values, "bidClose");
            return (Criteria) this;
        }

        public Criteria andBidCloseNotIn(List<Float> values) {
            addCriterion("bid_close not in", values, "bidClose");
            return (Criteria) this;
        }

        public Criteria andBidCloseBetween(Float value1, Float value2) {
            addCriterion("bid_close between", value1, value2, "bidClose");
            return (Criteria) this;
        }

        public Criteria andBidCloseNotBetween(Float value1, Float value2) {
            addCriterion("bid_close not between", value1, value2, "bidClose");
            return (Criteria) this;
        }

        public Criteria andBidHighIsNull() {
            addCriterion("bid_high is null");
            return (Criteria) this;
        }

        public Criteria andBidHighIsNotNull() {
            addCriterion("bid_high is not null");
            return (Criteria) this;
        }

        public Criteria andBidHighEqualTo(Float value) {
            addCriterion("bid_high =", value, "bidHigh");
            return (Criteria) this;
        }

        public Criteria andBidHighNotEqualTo(Float value) {
            addCriterion("bid_high <>", value, "bidHigh");
            return (Criteria) this;
        }

        public Criteria andBidHighGreaterThan(Float value) {
            addCriterion("bid_high >", value, "bidHigh");
            return (Criteria) this;
        }

        public Criteria andBidHighGreaterThanOrEqualTo(Float value) {
            addCriterion("bid_high >=", value, "bidHigh");
            return (Criteria) this;
        }

        public Criteria andBidHighLessThan(Float value) {
            addCriterion("bid_high <", value, "bidHigh");
            return (Criteria) this;
        }

        public Criteria andBidHighLessThanOrEqualTo(Float value) {
            addCriterion("bid_high <=", value, "bidHigh");
            return (Criteria) this;
        }

        public Criteria andBidHighIn(List<Float> values) {
            addCriterion("bid_high in", values, "bidHigh");
            return (Criteria) this;
        }

        public Criteria andBidHighNotIn(List<Float> values) {
            addCriterion("bid_high not in", values, "bidHigh");
            return (Criteria) this;
        }

        public Criteria andBidHighBetween(Float value1, Float value2) {
            addCriterion("bid_high between", value1, value2, "bidHigh");
            return (Criteria) this;
        }

        public Criteria andBidHighNotBetween(Float value1, Float value2) {
            addCriterion("bid_high not between", value1, value2, "bidHigh");
            return (Criteria) this;
        }

        public Criteria andBidLowIsNull() {
            addCriterion("bid_low is null");
            return (Criteria) this;
        }

        public Criteria andBidLowIsNotNull() {
            addCriterion("bid_low is not null");
            return (Criteria) this;
        }

        public Criteria andBidLowEqualTo(Float value) {
            addCriterion("bid_low =", value, "bidLow");
            return (Criteria) this;
        }

        public Criteria andBidLowNotEqualTo(Float value) {
            addCriterion("bid_low <>", value, "bidLow");
            return (Criteria) this;
        }

        public Criteria andBidLowGreaterThan(Float value) {
            addCriterion("bid_low >", value, "bidLow");
            return (Criteria) this;
        }

        public Criteria andBidLowGreaterThanOrEqualTo(Float value) {
            addCriterion("bid_low >=", value, "bidLow");
            return (Criteria) this;
        }

        public Criteria andBidLowLessThan(Float value) {
            addCriterion("bid_low <", value, "bidLow");
            return (Criteria) this;
        }

        public Criteria andBidLowLessThanOrEqualTo(Float value) {
            addCriterion("bid_low <=", value, "bidLow");
            return (Criteria) this;
        }

        public Criteria andBidLowIn(List<Float> values) {
            addCriterion("bid_low in", values, "bidLow");
            return (Criteria) this;
        }

        public Criteria andBidLowNotIn(List<Float> values) {
            addCriterion("bid_low not in", values, "bidLow");
            return (Criteria) this;
        }

        public Criteria andBidLowBetween(Float value1, Float value2) {
            addCriterion("bid_low between", value1, value2, "bidLow");
            return (Criteria) this;
        }

        public Criteria andBidLowNotBetween(Float value1, Float value2) {
            addCriterion("bid_low not between", value1, value2, "bidLow");
            return (Criteria) this;
        }

        public Criteria andAskOpenIsNull() {
            addCriterion("ask_open is null");
            return (Criteria) this;
        }

        public Criteria andAskOpenIsNotNull() {
            addCriterion("ask_open is not null");
            return (Criteria) this;
        }

        public Criteria andAskOpenEqualTo(Float value) {
            addCriterion("ask_open =", value, "askOpen");
            return (Criteria) this;
        }

        public Criteria andAskOpenNotEqualTo(Float value) {
            addCriterion("ask_open <>", value, "askOpen");
            return (Criteria) this;
        }

        public Criteria andAskOpenGreaterThan(Float value) {
            addCriterion("ask_open >", value, "askOpen");
            return (Criteria) this;
        }

        public Criteria andAskOpenGreaterThanOrEqualTo(Float value) {
            addCriterion("ask_open >=", value, "askOpen");
            return (Criteria) this;
        }

        public Criteria andAskOpenLessThan(Float value) {
            addCriterion("ask_open <", value, "askOpen");
            return (Criteria) this;
        }

        public Criteria andAskOpenLessThanOrEqualTo(Float value) {
            addCriterion("ask_open <=", value, "askOpen");
            return (Criteria) this;
        }

        public Criteria andAskOpenIn(List<Float> values) {
            addCriterion("ask_open in", values, "askOpen");
            return (Criteria) this;
        }

        public Criteria andAskOpenNotIn(List<Float> values) {
            addCriterion("ask_open not in", values, "askOpen");
            return (Criteria) this;
        }

        public Criteria andAskOpenBetween(Float value1, Float value2) {
            addCriterion("ask_open between", value1, value2, "askOpen");
            return (Criteria) this;
        }

        public Criteria andAskOpenNotBetween(Float value1, Float value2) {
            addCriterion("ask_open not between", value1, value2, "askOpen");
            return (Criteria) this;
        }

        public Criteria andAskCloseIsNull() {
            addCriterion("ask_close is null");
            return (Criteria) this;
        }

        public Criteria andAskCloseIsNotNull() {
            addCriterion("ask_close is not null");
            return (Criteria) this;
        }

        public Criteria andAskCloseEqualTo(Float value) {
            addCriterion("ask_close =", value, "askClose");
            return (Criteria) this;
        }

        public Criteria andAskCloseNotEqualTo(Float value) {
            addCriterion("ask_close <>", value, "askClose");
            return (Criteria) this;
        }

        public Criteria andAskCloseGreaterThan(Float value) {
            addCriterion("ask_close >", value, "askClose");
            return (Criteria) this;
        }

        public Criteria andAskCloseGreaterThanOrEqualTo(Float value) {
            addCriterion("ask_close >=", value, "askClose");
            return (Criteria) this;
        }

        public Criteria andAskCloseLessThan(Float value) {
            addCriterion("ask_close <", value, "askClose");
            return (Criteria) this;
        }

        public Criteria andAskCloseLessThanOrEqualTo(Float value) {
            addCriterion("ask_close <=", value, "askClose");
            return (Criteria) this;
        }

        public Criteria andAskCloseIn(List<Float> values) {
            addCriterion("ask_close in", values, "askClose");
            return (Criteria) this;
        }

        public Criteria andAskCloseNotIn(List<Float> values) {
            addCriterion("ask_close not in", values, "askClose");
            return (Criteria) this;
        }

        public Criteria andAskCloseBetween(Float value1, Float value2) {
            addCriterion("ask_close between", value1, value2, "askClose");
            return (Criteria) this;
        }

        public Criteria andAskCloseNotBetween(Float value1, Float value2) {
            addCriterion("ask_close not between", value1, value2, "askClose");
            return (Criteria) this;
        }

        public Criteria andAskHighIsNull() {
            addCriterion("ask_high is null");
            return (Criteria) this;
        }

        public Criteria andAskHighIsNotNull() {
            addCriterion("ask_high is not null");
            return (Criteria) this;
        }

        public Criteria andAskHighEqualTo(Float value) {
            addCriterion("ask_high =", value, "askHigh");
            return (Criteria) this;
        }

        public Criteria andAskHighNotEqualTo(Float value) {
            addCriterion("ask_high <>", value, "askHigh");
            return (Criteria) this;
        }

        public Criteria andAskHighGreaterThan(Float value) {
            addCriterion("ask_high >", value, "askHigh");
            return (Criteria) this;
        }

        public Criteria andAskHighGreaterThanOrEqualTo(Float value) {
            addCriterion("ask_high >=", value, "askHigh");
            return (Criteria) this;
        }

        public Criteria andAskHighLessThan(Float value) {
            addCriterion("ask_high <", value, "askHigh");
            return (Criteria) this;
        }

        public Criteria andAskHighLessThanOrEqualTo(Float value) {
            addCriterion("ask_high <=", value, "askHigh");
            return (Criteria) this;
        }

        public Criteria andAskHighIn(List<Float> values) {
            addCriterion("ask_high in", values, "askHigh");
            return (Criteria) this;
        }

        public Criteria andAskHighNotIn(List<Float> values) {
            addCriterion("ask_high not in", values, "askHigh");
            return (Criteria) this;
        }

        public Criteria andAskHighBetween(Float value1, Float value2) {
            addCriterion("ask_high between", value1, value2, "askHigh");
            return (Criteria) this;
        }

        public Criteria andAskHighNotBetween(Float value1, Float value2) {
            addCriterion("ask_high not between", value1, value2, "askHigh");
            return (Criteria) this;
        }

        public Criteria andAskLowIsNull() {
            addCriterion("ask_low is null");
            return (Criteria) this;
        }

        public Criteria andAskLowIsNotNull() {
            addCriterion("ask_low is not null");
            return (Criteria) this;
        }

        public Criteria andAskLowEqualTo(Float value) {
            addCriterion("ask_low =", value, "askLow");
            return (Criteria) this;
        }

        public Criteria andAskLowNotEqualTo(Float value) {
            addCriterion("ask_low <>", value, "askLow");
            return (Criteria) this;
        }

        public Criteria andAskLowGreaterThan(Float value) {
            addCriterion("ask_low >", value, "askLow");
            return (Criteria) this;
        }

        public Criteria andAskLowGreaterThanOrEqualTo(Float value) {
            addCriterion("ask_low >=", value, "askLow");
            return (Criteria) this;
        }

        public Criteria andAskLowLessThan(Float value) {
            addCriterion("ask_low <", value, "askLow");
            return (Criteria) this;
        }

        public Criteria andAskLowLessThanOrEqualTo(Float value) {
            addCriterion("ask_low <=", value, "askLow");
            return (Criteria) this;
        }

        public Criteria andAskLowIn(List<Float> values) {
            addCriterion("ask_low in", values, "askLow");
            return (Criteria) this;
        }

        public Criteria andAskLowNotIn(List<Float> values) {
            addCriterion("ask_low not in", values, "askLow");
            return (Criteria) this;
        }

        public Criteria andAskLowBetween(Float value1, Float value2) {
            addCriterion("ask_low between", value1, value2, "askLow");
            return (Criteria) this;
        }

        public Criteria andAskLowNotBetween(Float value1, Float value2) {
            addCriterion("ask_low not between", value1, value2, "askLow");
            return (Criteria) this;
        }

        public Criteria andTickQtyIsNull() {
            addCriterion("tick_qty is null");
            return (Criteria) this;
        }

        public Criteria andTickQtyIsNotNull() {
            addCriterion("tick_qty is not null");
            return (Criteria) this;
        }

        public Criteria andTickQtyEqualTo(Integer value) {
            addCriterion("tick_qty =", value, "tickQty");
            return (Criteria) this;
        }

        public Criteria andTickQtyNotEqualTo(Integer value) {
            addCriterion("tick_qty <>", value, "tickQty");
            return (Criteria) this;
        }

        public Criteria andTickQtyGreaterThan(Integer value) {
            addCriterion("tick_qty >", value, "tickQty");
            return (Criteria) this;
        }

        public Criteria andTickQtyGreaterThanOrEqualTo(Integer value) {
            addCriterion("tick_qty >=", value, "tickQty");
            return (Criteria) this;
        }

        public Criteria andTickQtyLessThan(Integer value) {
            addCriterion("tick_qty <", value, "tickQty");
            return (Criteria) this;
        }

        public Criteria andTickQtyLessThanOrEqualTo(Integer value) {
            addCriterion("tick_qty <=", value, "tickQty");
            return (Criteria) this;
        }

        public Criteria andTickQtyIn(List<Integer> values) {
            addCriterion("tick_qty in", values, "tickQty");
            return (Criteria) this;
        }

        public Criteria andTickQtyNotIn(List<Integer> values) {
            addCriterion("tick_qty not in", values, "tickQty");
            return (Criteria) this;
        }

        public Criteria andTickQtyBetween(Integer value1, Integer value2) {
            addCriterion("tick_qty between", value1, value2, "tickQty");
            return (Criteria) this;
        }

        public Criteria andTickQtyNotBetween(Integer value1, Integer value2) {
            addCriterion("tick_qty not between", value1, value2, "tickQty");
            return (Criteria) this;
        }

        public Criteria andExchangeIsNull() {
            addCriterion("exchange is null");
            return (Criteria) this;
        }

        public Criteria andExchangeIsNotNull() {
            addCriterion("exchange is not null");
            return (Criteria) this;
        }

        public Criteria andExchangeEqualTo(String value) {
            addCriterion("exchange =", value, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeNotEqualTo(String value) {
            addCriterion("exchange <>", value, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeGreaterThan(String value) {
            addCriterion("exchange >", value, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeGreaterThanOrEqualTo(String value) {
            addCriterion("exchange >=", value, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeLessThan(String value) {
            addCriterion("exchange <", value, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeLessThanOrEqualTo(String value) {
            addCriterion("exchange <=", value, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeLike(String value) {
            addCriterion("exchange like", value, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeNotLike(String value) {
            addCriterion("exchange not like", value, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeIn(List<String> values) {
            addCriterion("exchange in", values, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeNotIn(List<String> values) {
            addCriterion("exchange not in", values, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeBetween(String value1, String value2) {
            addCriterion("exchange between", value1, value2, "exchange");
            return (Criteria) this;
        }

        public Criteria andExchangeNotBetween(String value1, String value2) {
            addCriterion("exchange not between", value1, value2, "exchange");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}